五、匿名函数
5.1 声明匿名函数
匿名函数是指没有函数名的函数。
看下面一段代码:
<script type="text/javascript">
/*
//这里定义了一个函数,而且没有函数名。这样写语法是错误的,如果允许这样定义,那么根本就没有办法调用。
//所以,我们可以用一个变量来存储一下
function(){
}
*/
// 声明了一个匿名函数,并把匿名函数赋值给变量f。 注意这个时候这个匿名函数并没有执行。
var f = function(){
alert("哥们我是匿名函数内的代码");
}
//我们可以把变量 f 当做一个函数名来调用
f(); //调用上面定义的匿名函数
</script>
说明:
匿名函数除了没有函数名之外,其他与普通的函数没有任何区别。
如果想在别的地方调用匿名函数,则应该声明一个变量,并把匿名函数赋值给这个变量
可以把这个变量名做为函数名来调用。参数传递,方法返回值和普通的函数一样。
5.2 匿名函数的作用
函数表达式可以存储在变量中,变量也可以作为一个函数使用。
可以将匿名函数作为参数传递给其他函数
<script type="text/javascript">
//声明一个函数,参数接受一个函数
function fun1 (fun) {
if(typeof fun == "function"){ //如果传递的是function类型,则调用这个函数
fun()
}
}
// 调用函数fun1,并传入一个匿名函数实参
fun1(function () {
alert("这个是匿名函数的代码")
});
</script>
可以通过匿名函数完成某些一次性的任务。
如果一个函数不需要重复执行,则可以定义一个匿名函数
5.3 匿名函数立即执行
有些场景,我们需要定义完函数之后立即执行,这个时候可以定义一个匿名函数来完成。
(function () {
alert("匿名函数立即执行")
})();
说明
需要把匿名函数用一对圆括号括起来,把匿名函数作为一个整体来对待
最后再添加一对圆括号表示调用函数。这样定义的匿名函数就会立即执行
当然,这个时候即使给这个函数加上方法名,也可以调用。不过这种情况为什么还要加方法名呢?